home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- *
- * NSSDC/CDF CDF FORTRAN interface.
- *
- * Version 2.2, 29-Feb-92, ST Systems (STX)
- *
- * Modification history:
- *
- * V1.0 22-Jan-91, J Love Original version (for CDF V2.0).
- * V1.1 11-Feb-91, J Love Fixed max_rec in CDF_inquire.
- * V2.0 1-Jun-91, J Love Renamed (was CDF_V2_FORTRAN_IF.C). Changed
- * for new CDF V2.1 internal structures. Also
- * calls INTERNAL i/f directly rather than using
- * C i/f.
- * V2.1 30-Jul-91, J Love Use 'CDFlib'. If variable data type is CHAR
- * or UCHAR, check for %DESCR (if VMS).
- * V2.2 29-Feb-92, J Love Modified for IBM-PC port. CDF V2.2.
- *
- ******************************************************************************/
-
- /******************************************************************************
- *
- * Notes (for VMS version):
- *
- * To make the user's life a little easier, all names and attribute
- * values (for attributes of data types CDF_CHAR and CDF_UCHAR) may be passed
- * in and out by either reference or descriptor. The default passing mode
- * for an embedded character string (e.g., CALL subr (..., 'string', ...)) or
- * a CHARACTER variable symbol (e.g., CALL subr (..., ATTR_NAME, ...) where
- * ATTR_NAME is defined as CHARACTER*8) is by descriptor when passing from
- * FORTRAN to C in VMS.
- *
- * An embedded character string could be enclosed in %REF() to force
- * passing by reference since the FORTRAN compiler puts a NUL character at
- * the end of these strings as expected by the CDF V2.0 library (written in
- * C). Enclosing a CHARACTER variable symbol in %REF() will result in
- * an error, however, because a NUL character is not placed at the ends of
- * these type strings by the FORTRAN compiler. The user would have to
- * supply the terminating NUL. By letting the passing mode default to
- * by-descriptor, this interface will supply the terminating NUL.
- *
- * The main difference here from CDF Version 1 is that the %REF() is
- * not needed when passing out names and attribute values. Also, variable
- * values for character variables need not be enclosed in %REF().
- *
- ******************************************************************************/
-
- /******************************************************************************
- *
- * Notes (for UNIX version):
- *
- * All passing between FORTRAN and C on UNIX systems is done by reference.
- * When character strings are passed between FORTRAN and C, extra arguments
- * are added to the argument list containing the lengths of those character
- * strings.
- *
- * Entry points have been made lowercase because the FORTRAN compiler
- * converts all uppercase characters to lowercase in entry points. This way
- * the linker will find everything. Unix FORTRAN compilers and linkers also
- * seem to like trailing '_'s (except on the IBM-RS6000/AIX).
- *
- ******************************************************************************/
-
- #include "cdflib.h"
-
-
- /******************************************************************************
- * CDF_create.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_create (CDF_name, num_dims, dim_sizes, encoding, majority, id, Status)
- void *CDF_name; /* in: CDF name
- - in VMS, may be passed by
- reference or descriptor */
- long *num_dims; /* in: number of dimensions */
- long dim_sizes[]; /* in: dimension sizes */
- long *encoding; /* in: host or network */
- long *majority; /* in: row or column major */
- CDFid *id; /* out: CDF identifier */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (CREATE_, CDF_, DESCRtoREFnul(CDF_name,CDF_PATHNAME_LEN),
- *num_dims, dim_sizes, id,
- PUT_, CDF_ENCODING_, *encoding,
- CDF_MAJORITY_, *majority,
- NULL_);
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_create (CDF_name, num_dims, dim_sizes, encoding, majority, id,
- Status, CDF_name_len)
- #else
- void cdf_create_ (CDF_name, num_dims, dim_sizes, encoding, majority, id,
- Status, CDF_name_len)
- #endif
- char *CDF_name; /* in: CDF name */
- long *num_dims; /* in: number of dimensions */
- long dim_sizes[]; /* in: dimension sizes */
- long *encoding; /* in: host or network */
- long *majority; /* in: row or column major */
- CDFid *id; /* out: CDF identifier */
- CDFstatus *Status; /* out: CDF status code */
- long CDF_name_len; /* invisible: length of "CDF_name"
- (generated by FORTRAN compiler) */
- {
- *Status = CDFlib (CREATE_, CDF_, NULterminate(CDF_name,CDF_name_len),
- *num_dims, dim_sizes, id,
- PUT_, CDF_ENCODING_, *encoding,
- CDF_MAJORITY_, *majority,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_open.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_open (CDF_name, id, Status)
- void *CDF_name; /* in: CDF name
- - in VMS, may be passed by
- reference or descriptor */
- CDFid *id; /* out: CDF identifier */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (OPEN_, CDF_, DESCRtoREFnul(CDF_name,CDF_PATHNAME_LEN),
- id,
- NULL_);
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_open (CDF_name, id, Status, CDF_name_len)
- #else
- void cdf_open_ (CDF_name, id, Status, CDF_name_len)
- #endif
- char *CDF_name; /* in: CDF name */
- CDFid *id; /* out: CDF identifier */
- CDFstatus *Status; /* out: CDF status code */
- long CDF_name_len; /* invisible: length of "CDF_name"
- (generated by FORTRAN compiler) */
- {
- *Status = CDFlib (OPEN_, CDF_, NULterminate(CDF_name,CDF_name_len),
- id,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_doc.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_doc (id, version, release, text, Status)
- CDFid *id; /* in: CDF identifier */
- long *version; /* out: CDF version number (creating library
- version number) */
- long *release; /* out: CDF release number (creating library
- release number) */
- void *text; /* out: copyright text - passed by
- reference or descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- char copyrightText[CDF_COPYRIGHT_LEN + 1];
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_VERSION_, version,
- CDF_RELEASE_, release,
- CDF_COPYRIGHT_, copyrightText,
- NULL_);
- if (*Status > CDF_WARN) CtoFORTstring (copyrightText, text, CDF_COPYRIGHT_LEN);
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_doc (id, version, release, text, Status, text_len)
- #else
- void cdf_doc_ (id, version, release, text, Status, text_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *version; /* out: CDF version number (creating library
- version number) */
- long *release; /* out: CDF release number (creating library
- release number) */
- char *text; /* out: copyright text */
- CDFstatus *Status; /* out: CDF status code */
- long text_len; /* invisible: length of "text"
- (generated by FORTRAN compiler) */
- {
- char copyrightText[CDF_COPYRIGHT_LEN + 1];
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_VERSION_, version,
- CDF_RELEASE_, release,
- CDF_COPYRIGHT_, copyrightText,
- NULL_);
- if (*Status > CDF_WARN) CtoFORTstring (copyrightText, text, text_len);
-
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_inquire.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_inquire (id, num_dims, dim_sizes, encoding, majority,
- max_rec, num_vars, num_attrs, Status)
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_inquire (id, num_dims, dim_sizes, encoding, majority,
- max_rec, num_vars, num_attrs, Status)
- #else
- void cdf_inquire_ (id, num_dims, dim_sizes, encoding, majority,
- max_rec, num_vars, num_attrs, Status)
- #endif
- #endif
-
- CDFid *id; /* in: CDF identifier */
- long *num_dims; /* out: number of dimensions */
- long dim_sizes[]; /* out: dimension sizes */
- long *encoding; /* out: host or network */
- long *majority; /* out: row or column major */
- long *max_rec; /* out: maximum record number */
- long *num_vars; /* out: number of variables */
- long *num_attrs; /* out: number of attributes */
- CDFstatus *Status; /* out: CDF status code */
- {
- long maxRec;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_NUMDIMS_, num_dims,
- CDF_DIMSIZES_, dim_sizes,
- CDF_ENCODING_, encoding,
- CDF_MAJORITY_, majority,
- CDF_MAXREC_, &maxRec,
- CDF_NUMVARS_, num_vars,
- CDF_NUMATTRS_, num_attrs,
- NULL_);
- *max_rec = maxRec + 1;
-
- return;
- }
-
-
- /******************************************************************************
- * CDF_close.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_close (id, Status)
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_close (id, Status)
- #else
- void cdf_close_ (id, Status)
- #endif
- #endif
-
- CDFid *id; /* in: CDF identifier */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- CLOSE_, CDF_,
- NULL_);
- return;
- }
-
-
- /******************************************************************************
- * CDF_delete.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_delete (id, Status)
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_delete (id, Status)
- #else
- void cdf_delete_ (id, Status)
- #endif
- #endif
-
- CDFid *id; /* in: CDF identifier */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- DELETE_, CDF_,
- NULL_);
- return;
- }
-
-
- /******************************************************************************
- * CDF_attr_create.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_create (id, attr_name, attr_scope, attr_num, Status)
- CDFid *id; /* in: CDF identifier */
- void *attr_name; /* in: attribute name
- - in VMS, may be passed by
- reference or descriptor */
- long *attr_scope; /* in: VARIABLE, GLOBAL, ASSUMED_VARIABLE,
- or ASSUMED_GLOBAL */
- long *attr_num; /* out: attribute number */
- CDFstatus *Status; /* out: CDF status code */
- {
-
- long attrNum; /* indexed from 0 (V2/C style) */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CREATE_, ATTR_, DESCRtoREFnul(attr_name,
- CDF_ATTR_NAME_LEN),
- *attr_scope, &attrNum,
- NULL_);
- *attr_num = attrNum + 1; /* attr_num indexed from 1 (FORTRAN style) */
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_create (id, attr_name, attr_scope, attr_num, Status,
- attr_name_len)
- #else
- void cdf_attr_create_ (id, attr_name, attr_scope, attr_num, Status,
- attr_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- char *attr_name; /* in: attribute name */
- long *attr_scope; /* in: VARIABLE, GLOBAL, ASSUMED_VARIABLE,
- or ASSUMED_GLOBAL */
- long *attr_num; /* out: attribute number */
- CDFstatus *Status; /* out: CDF status code */
- long attr_name_len; /* invisible: length of "attr_name"
- (generated by FORTRAN compiler) */
- {
- long attrNum; /* indexed from 0 (V2/C style) */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CREATE_, ATTR_, NULterminate(attr_name, attr_name_len),
- *attr_scope, &attrNum,
- NULL_);
- *attr_num = attrNum + 1; /* attr_num indexed from 1 (FORTRAN style) */
-
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_attr_num.
- ******************************************************************************/
-
- #if defined(vms)
- long CDF_attr_num (id, attr_name)
- CDFid *id; /* in: CDF identifier */
- void *attr_name; /* in: attribute name
- - in VMS, may be passed by
- reference or descriptor */
- {
- CDFstatus status;
- long attrNum;
-
- status = CDFlib (SELECT_, CDF_, *id,
- GET_, ATTR_NUMBER_, DESCRtoREFnul(attr_name,
- CDF_ATTR_NAME_LEN),
- &attrNum,
- NULL_);
- if (status < CDF_WARN)
- return status;
- else
- return attrNum + 1; /* +1 for FORTRAN i/f (assuming no INFO status
- codes returned) */
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- long cdf_attr_num (id, attr_name, attr_name_len)
- #else
- long cdf_attr_num_ (id, attr_name, attr_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- char *attr_name; /* in: attribute name */
- long attr_name_len; /* invisible: length of "attr_name"
- (generated by FORTRAN compiler) */
- {
- CDFstatus status;
- long attrNum;
-
- status = CDFlib (SELECT_, CDF_, *id,
- GET_, ATTR_NUMBER_, NULterminate(attr_name, attr_name_len),
- &attrNum,
- NULL_);
- if (status < CDF_WARN)
- return status;
- else
- return attrNum + 1; /* +1 for FORTRAN i/f (assuming no INFO status
- codes returned) */
- }
- #endif
-
-
- /******************************************************************************
- * CDF_attr_rename.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_rename (id, attr_num, attr_name, Status)
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- void *attr_name; /* in: new attribute name
- - in VMS, may be passed by
- reference or descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- PUT_, ATTR_NAME_, DESCRtoREFnul(attr_name,
- CDF_ATTR_NAME_LEN),
- NULL_);
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_rename (id, attr_num, attr_name, Status, attr_name_len)
- #else
- void cdf_attr_rename_ (id, attr_num, attr_name, Status, attr_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- char *attr_name; /* in: new attribute name */
- CDFstatus *Status; /* out: CDF status code */
- long attr_name_len; /* invisible: length of "attr_name"
- (generated by FORTRAN compiler) */
- {
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- PUT_, ATTR_NAME_, NULterminate(attr_name, attr_name_len),
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_attr_correct_scope.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_correct_scope (id, attr_num, attr_scope, Status)
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_correct_scope (id, attr_num, attr_scope, Status)
- #else
- void cdf_attr_correct_scope_ (id, attr_num, attr_scope, Status)
- #endif
- #endif
-
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- long *attr_scope; /* in: VARIABLE, GLOBAL, ASSUMED_VARIABLE,
- or ASSUMED_GLOBAL */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num-1,
- PUT_, ATTR_SCOPE_, *attr_scope,
- NULL_);
- return;
- }
-
-
- /******************************************************************************
- * CDF_attr_inquire.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_inquire (id, attr_num, attr_name, attr_scope, max_entry, Status)
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- void *attr_name; /* out: attribute name - passed out
- by reference or descriptor */
- long *attr_scope; /* out: VARIABLE, GLOBAL, ASSUMED_VARIABLE,
- or ASSUMED_GLOBAL */
- long *max_entry; /* out: maximum entry number for attribute */
- CDFstatus *Status; /* out: CDF status code */
- {
- char attrName[CDF_ATTR_NAME_LEN + 1];
- long maxEntry;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- GET_, ATTR_NAME_, attrName,
- ATTR_SCOPE_, attr_scope,
- ATTR_MAXENTRY_, &maxEntry,
- NULL_);
- if (*Status > CDF_WARN) {
- CtoFORTstring (attrName, attr_name, CDF_ATTR_NAME_LEN);
- *max_entry = maxEntry + 1;
- }
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_inquire (id, attr_num, attr_name, attr_scope, max_entry,
- Status, attr_name_len)
- #else
- void cdf_attr_inquire_ (id, attr_num, attr_name, attr_scope, max_entry,
- Status, attr_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- char *attr_name; /* out: attribute name */
- long *attr_scope; /* out: VARIABLE, GLOBAL, ASSUMED_VARIABLE,
- or ASSUMED_GLOBAL */
- long *max_entry; /* out: maximum entry number for attribute */
- CDFstatus *Status; /* out: CDF status code */
- long attr_name_len; /* invisible: length of "attr_name"
- (generated by FORTRAN compiler) */
- {
- char attrName[CDF_ATTR_NAME_LEN + 1];
- long maxEntry;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- GET_, ATTR_NAME_, attrName,
- ATTR_SCOPE_, attr_scope,
- ATTR_MAXENTRY_, &maxEntry,
- NULL_);
- if (*Status > CDF_WARN) {
- CtoFORTstring (attrName, attr_name, attr_name_len);
- *max_entry = maxEntry + 1;
- }
-
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_attr_entry_inquire.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_entry_inquire (id, attr_num, entry_num, data_type, num_elements,
- Status)
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_entry_inquire (id, attr_num, entry_num, data_type, num_elements,
- Status)
- #else
- void cdf_attr_entry_inquire_ (id, attr_num, entry_num, data_type, num_elements,
- Status)
- #endif
- #endif
-
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- long *entry_num; /* in: entry number, indexed from 1
- (FORTRAN style) */
- long *data_type; /* out: CDF V2 style data type */
- long *num_elements; /* out: number of elements */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- ENTRY_, *entry_num - 1,
- GET_, ENTRY_DATATYPE_, data_type,
- ENTRY_NUMELEMS_, num_elements,
- NULL_);
- return;
- }
-
-
- /******************************************************************************
- * CDF_attr_put.
- *
- * UNIX: Note that one extra argument may be passed in if the "value" is of
- * type CHARACTER. The extra argument would be ignored in this case.
- *
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_put (id, attr_num, entry_num, data_type, num_elements, value,
- Status)
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- long *entry_num; /* in: entry number, indexed from 1
- (FORTRAN style) */
- long *data_type; /* in: CDF V2 style data type */
- long *num_elements; /* in: number of elements */
- void *value; /* in: attribute value, if CDF_CHAR/CDF_UCHAR
- attribute, in VMS could be passed
- by reference or descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- ENTRY_, *entry_num - 1,
- PUT_, ENTRY_DATA_, *data_type, *num_elements,
- (STRINGdataType(*data_type) ?
- DESCRtoREF(value) : value),
- NULL_);
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_put (id, attr_num, entry_num, data_type, num_elements, value,
- Status)
- #else
- void cdf_attr_put_ (id, attr_num, entry_num, data_type, num_elements, value,
- Status)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- long *entry_num; /* in: entry number, indexed from 1
- (FORTRAN style) */
- long *data_type; /* in: CDF V2 style data type */
- long *num_elements; /* in: number of elements */
- void *value; /* in: attribute value */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- ENTRY_, *entry_num - 1,
- PUT_, ENTRY_DATA_, *data_type, *num_elements, value,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_attr_get.
- *
- * UNIX: Note that one extra argument may be passed in if the "value" is of
- * type CHARACTER. The extra argument would be ignored in this case.
- *
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_attr_get (id, attr_num, entry_num, value, Status)
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- long *entry_num; /* in: entry number, indexed from 1
- (FORTRAN style) */
- void *value; /* out: could be passed out by reference or
- by descriptor if CDF_CHAR/CDF_UCHAR */
- CDFstatus *Status; /* out: CDF status code */
- {
- long dataType;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- ENTRY_, *entry_num - 1,
- GET_, ENTRY_DATATYPE_, &dataType,
- NULL_);
-
- if (*Status > CDF_WARN)
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, ENTRY_DATA_, STRINGdataType(dataType) ?
- DESCRtoREF(value) : value,
- NULL_);
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_attr_get (id, attr_num, entry_num, value, Status)
- #else
- void cdf_attr_get_ (id, attr_num, entry_num, value, Status)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *attr_num; /* in: attribute number, indexed from 1
- (FORTRAN style) */
- long *entry_num; /* in: entry number, indexed from 1
- (FORTRAN style) */
- void *value; /* out: attribute value */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- ATTR_, *attr_num - 1,
- ENTRY_, *entry_num - 1,
- GET_, ENTRY_DATA_, value,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_create.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_create (id, var_name, data_type, num_elements, record_variance,
- dim_variances, var_num, Status)
- CDFid *id; /* in: CDF identifier */
- void *var_name; /* in: attribute name
- - in VMS may be passed by reference
- or descriptor */
- long *data_type; /* in: CDF Version 2 style data type */
- long *num_elements; /* in: number of elements of data_type; should
- be 1 if not CDF_CHAR or CDF_UCHAR */
- long *record_variance; /* in: record variance */
- long dim_variances[]; /* in: dimension variances */
- long *var_num; /* out: variable number, indexed from 1
- (FORTRAN style) */
- CDFstatus *Status; /* out: CDF status code */
- {
- long varNum; /* indexed from 0 (V2/C style) */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CREATE_, VAR_, DESCRtoREFnul(var_name,CDF_VAR_NAME_LEN),
- *data_type, *num_elements,
- *record_variance, dim_variances, &varNum,
- NULL_);
- *var_num = varNum + 1; /* indexed from 1 (FORTRAN style) */
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_create (id, var_name, data_type, num_elements, record_variance,
- dim_variances, var_num, Status, var_name_len)
- #else
- void cdf_var_create_ (id, var_name, data_type, num_elements, record_variance,
- dim_variances, var_num, Status, var_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- char *var_name; /* in: attribute name */
- long *data_type; /* in: CDF Version 2 style data type */
- long *num_elements; /* in: number of elements of data_type; should
- be 1 if not CDF_CHAR or CDF_UCHAR */
- long *record_variance; /* in: record variance */
- long dim_variances[]; /* in: dimension variances */
- long *var_num; /* out: variable number, indexed from 1
- (FORTRAN style) */
- CDFstatus *Status; /* out: CDF status code */
- long var_name_len; /* invisible: length of "var_name"
- (generated by FORTRAN compiler) */
- {
- long varNum; /* indexed from 0 (V2/C style) */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CREATE_, VAR_, NULterminate(var_name,var_name_len),
- *data_type, *num_elements,
- *record_variance, dim_variances, &varNum,
- NULL_);
- *var_num = varNum + 1; /* indexed from 1 (FORTRAN style) */
-
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_num.
- ******************************************************************************/
-
- #if defined(vms)
- long CDF_var_num (id, var_name)
- CDFid *id; /* in: CDF identifier */
- void *var_name; /* in: variable name
- - in VMS, may be passed by
- reference or descriptor */
- {
- CDFstatus status;
- long varNum;
-
- status = CDFlib (SELECT_, CDF_, *id,
- GET_, VAR_NUMBER_, DESCRtoREFnul(var_name,CDF_VAR_NAME_LEN),
- &varNum,
- NULL_);
- if (status < CDF_WARN)
- return status;
- else
- return varNum + 1; /* +1 for FORTRAN i/f (assuming no INFO status
- codes returned) */
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- long cdf_var_num (id, var_name, var_name_len)
- #else
- long cdf_var_num_ (id, var_name, var_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- char *var_name; /* in: variable name */
- long var_name_len; /* invisible: length of "var_name"
- (generated by FORTRAN compiler) */
- {
- CDFstatus status;
- long varNum;
-
- status = CDFlib (SELECT_, CDF_, *id,
- GET_, VAR_NUMBER_, NULterminate(var_name,var_name_len),
- &varNum,
- NULL_);
- if (status < CDF_OK)
- return status;
- else
- return varNum + 1; /* +1 for FORTRAN i/f (assuming no INFO status
- codes returned) */
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_rename.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_rename (id, var_num, var_name, Status)
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- void *var_name; /* in: new variable name
- - in VMS, may be passed by
- reference or descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- PUT_, VAR_NAME_, DESCRtoREFnul(var_name,
- CDF_VAR_NAME_LEN),
- NULL_);
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_rename (id, var_num, var_name, Status, var_name_len)
- #else
- void cdf_var_rename_ (id, var_num, var_name, Status, var_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- char *var_name; /* in: new variable name */
- CDFstatus *Status; /* out: CDF status code */
- long var_name_len; /* invisible: length of "var_name"
- (generated by FORTRAN compiler) */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- PUT_, VAR_NAME_, NULterminate(var_name,var_name_len),
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_inquire.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_inquire (id, var_num, var_name, data_type, num_elements,
- record_variance, dim_variances, Status)
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- char *var_name; /* out: variable name - always passed out
- by reference */
- long *data_type; /* out: CDF Version 2 style data type */
- long *num_elements; /* out: number of elements of data_type */
- long *record_variance; /* out: record variance */
- long dim_variances[]; /* out: dimension variances */
- CDFstatus *Status; /* out: CDF status code */
- {
- char varName[CDF_VAR_NAME_LEN + 1];
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- GET_, VAR_NAME_, varName,
- VAR_DATATYPE_, data_type,
- VAR_NUMELEMS_, num_elements,
- VAR_RECVARY_, record_variance,
- VAR_DIMVARYS_, dim_variances,
- NULL_);
- if (*Status > CDF_WARN) CtoFORTstring (varName, var_name, CDF_VAR_NAME_LEN);
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_inquire (id, var_num, var_name, data_type, num_elements,
- record_variance, dim_variances, Status, var_name_len)
- #else
- void cdf_var_inquire_ (id, var_num, var_name, data_type, num_elements,
- record_variance, dim_variances, Status, var_name_len)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- char *var_name; /* out: variable name */
- long *data_type; /* out: CDF Version 2 style data type */
- long *num_elements; /* out: number of elements of data_type */
- long *record_variance; /* out: record variance */
- long dim_variances[]; /* out: dimension variances */
- CDFstatus *Status; /* out: CDF status code */
- long var_name_len; /* invisible: length of "var_name"
- (generated by FORTRAN compiler) */
- {
- char varName[CDF_VAR_NAME_LEN + 1];
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- GET_, VAR_NAME_, varName,
- VAR_DATATYPE_, data_type,
- VAR_NUMELEMS_, num_elements,
- VAR_RECVARY_, record_variance,
- VAR_DIMVARYS_, dim_variances,
- NULL_);
- if (*Status > CDF_WARN) CtoFORTstring (varName, var_name, var_name_len);
-
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_put.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_put (id, var_num, record_num, indices, value, Status)
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_num; /* in: record number, indexed from 1
- (FORTRAN style) */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- void *value; /* in: variable value, if character data type,
- could be passed by reference or by
- descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
- long dataType;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- GET_, CDF_NUMDIMS_, &numDims,
- VAR_DATATYPE_, &dataType,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CDF_RECNUMBER_, *record_num - 1,
- CDF_DIMINDICES_, Cindices,
- PUT_, VAR_DATA_,
- STRINGdataType(dataType) ? DESCRtoREF(value) : value,
- NULL_);
- return;
- }
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_put (id, var_num, record_num, indices, value, Status)
- #else
- void cdf_var_put_ (id, var_num, record_num, indices, value, Status)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_num; /* in: record number, indexed from 1
- (FORTRAN style) */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- void *value; /* in: variable value, always passed
- by reference */
- CDFstatus *Status; /* out: CDF status code */
- /* invisible: if 'value' is CHARACTER, an
- extra argument would have been
- passed with its length (ignored
- in this case) */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_NUMDIMS_, &numDims,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- CDF_RECNUMBER_, *record_num - 1,
- CDF_DIMINDICES_, Cindices,
- PUT_, VAR_DATA_, value,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_get.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_get (id, var_num, record_num, indices, value, Status)
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_num; /* in: record number, indexed from 1
- (FORTRAN style) */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- void *value; /* in: variable value, if character data type,
- could be passed by reference or by
- descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
- long dataType;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- GET_, CDF_NUMDIMS_, &numDims,
- VAR_DATATYPE_, &dataType,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CDF_RECNUMBER_, *record_num - 1,
- CDF_DIMINDICES_, Cindices,
- GET_, VAR_DATA_,
- STRINGdataType(dataType) ? DESCRtoREF(value) : value,
- NULL_);
- return;
- }
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_get (id, var_num, record_num, indices, value, Status)
- #else
- void cdf_var_get_ (id, var_num, record_num, indices, value, Status)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_num; /* in: record number, indexed from 1
- (FORTRAN style) */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- void *value; /* in: variable value, always passed
- by reference */
- CDFstatus *Status; /* out: CDF status code */
- /* invisible: if 'value' is CHARACTER, an
- extra argument would have been
- passed with its length (ignored
- in this case) */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_NUMDIMS_, &numDims,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- CDF_RECNUMBER_, *record_num - 1,
- CDF_DIMINDICES_, Cindices,
- GET_, VAR_DATA_, value,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_hyper_put.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_hyper_put (id, var_num,
- record_start, record_count, record_interval,
- indices, counts, intervals, buffer, Status)
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_start; /* in: starting record number, indexed
- from 1 (FORTRAN style) */
- long *record_count; /* in: record count */
- long *record_interval; /* in: record interval */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- long counts[]; /* in: dimension counts */
- long intervals[]; /* in: dimension intervals */
- void *buffer; /* in: pointer to buffer of values, if variable
- is character data type, could be passed
- by reference or descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
- long dataType;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- GET_, CDF_NUMDIMS_, &numDims,
- VAR_DATATYPE_, &dataType,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CDF_RECNUMBER_, *record_start - 1,
- CDF_RECCOUNT_, *record_count,
- CDF_RECINTERVAL_, *record_interval,
- CDF_DIMINDICES_, Cindices,
- CDF_DIMCOUNTS_, counts,
- CDF_DIMINTERVALS_, intervals,
- PUT_, VAR_HYPERDATA_, STRINGdataType(dataType) ?
- DESCRtoREF(buffer) : buffer,
- NULL_);
- return;
- }
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_hyper_put (id, var_num,
- record_start, record_count, record_interval,
- indices, counts, intervals, buffer, Status)
- #else
- void cdf_var_hyper_put_ (id, var_num,
- record_start, record_count, record_interval,
- indices, counts, intervals, buffer, Status)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_start; /* in: starting record number, indexed
- from 1 (FORTRAN style) */
- long *record_count; /* in: record count */
- long *record_interval; /* in: record interval */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- long counts[]; /* in: dimension counts */
- long intervals[]; /* in: dimension intervals */
- void *buffer; /* in: pointer to buffer of values, always
- passed by reference */
- CDFstatus *Status; /* out: CDF status code */
- /* invisible: if 'buffer' is CHARACTER, an
- extra argument would have been
- passed with its length (ignored
- in this case) */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_NUMDIMS_, &numDims,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- CDF_RECNUMBER_, *record_start - 1,
- CDF_RECCOUNT_, *record_count,
- CDF_RECINTERVAL_, *record_interval,
- CDF_DIMINDICES_, Cindices,
- CDF_DIMCOUNTS_, counts,
- CDF_DIMINTERVALS_, intervals,
- PUT_, VAR_HYPERDATA_, buffer,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_hyper_get.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_hyper_get (id, var_num,
- record_start, record_count, record_interval,
- indices, counts, intervals, buffer, Status)
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_start; /* in: starting record number, indexed
- from 1 (FORTRAN style) */
- long *record_count; /* in: record count */
- long *record_interval; /* in: record interval */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- long counts[]; /* in: dimension counts */
- long intervals[]; /* in: dimension intervals */
- void *buffer; /* in: pointer to buffer of values, if variable
- is character data type, could be passed
- by reference or descriptor */
- CDFstatus *Status; /* out: CDF status code */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
- long dataType;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- GET_, CDF_NUMDIMS_, &numDims,
- VAR_DATATYPE_, &dataType,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- CDF_RECNUMBER_, *record_start - 1,
- CDF_RECCOUNT_, *record_count,
- CDF_RECINTERVAL_, *record_interval,
- CDF_DIMINDICES_, Cindices,
- CDF_DIMCOUNTS_, counts,
- CDF_DIMINTERVALS_, intervals,
- GET_, VAR_HYPERDATA_, STRINGdataType(dataType) ?
- DESCRtoREF(buffer) : buffer,
- NULL_);
- return;
- }
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_hyper_get (id, var_num,
- record_start, record_count, record_interval,
- indices, counts, intervals, buffer, Status)
- #else
- void cdf_var_hyper_get_ (id, var_num,
- record_start, record_count, record_interval,
- indices, counts, intervals, buffer, Status)
- #endif
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- long *record_start; /* in: starting record number, indexed
- from 1 (FORTRAN style) */
- long *record_count; /* in: record count */
- long *record_interval; /* in: record interval */
- long indices[]; /* in: dimension indices, indexed from 1
- (FORTRAN style) */
- long counts[]; /* in: dimension counts */
- long intervals[]; /* in: dimension intervals */
- void *buffer; /* in: pointer to buffer of values, always
- passed by reference */
- CDFstatus *Status; /* out: CDF status code */
- /* invisible: if 'buffer' is CHARACTER, an
- extra argument would have been
- passed with its length (ignored
- in this case) */
- {
- long dim_n;
- long Cindices[CDF_MAX_DIMS]; /* indexed from 0 (V2/C-style) */
- long numDims;
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- GET_, CDF_NUMDIMS_, &numDims,
- NULL_);
- if (*Status < CDF_WARN) return;
-
- for (dim_n = 0; dim_n < numDims; dim_n++)
- Cindices[dim_n] = indices[dim_n] - 1; /* index from 0 */
-
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- CDF_RECNUMBER_, *record_start - 1,
- CDF_RECCOUNT_, *record_count,
- CDF_RECINTERVAL_, *record_interval,
- CDF_DIMINDICES_, Cindices,
- CDF_DIMCOUNTS_, counts,
- CDF_DIMINTERVALS_, intervals,
- GET_, VAR_HYPERDATA_, buffer,
- NULL_);
- return;
- }
- #endif
-
-
- /******************************************************************************
- * CDF_var_close.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_var_close (id, var_num, Status)
- #endif
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_var_close (id, var_num, Status)
- #else
- void cdf_var_close_ (id, var_num, Status)
- #endif
- #endif
-
- CDFid *id; /* in: CDF identifier */
- long *var_num; /* in: variable number, indexed from 1
- (FORTRAN style) */
- CDFstatus *Status; /* out: CDF status code */
- {
- *Status = CDFlib (SELECT_, CDF_, *id,
- VAR_, *var_num - 1,
- CLOSE_, VAR_,
- NULL_);
- return;
- }
-
-
- /******************************************************************************
- * CDF_error.
- ******************************************************************************/
-
- #if defined(vms)
- void CDF_error (Status, text)
- CDFstatus *Status; /* in: CDF status code */
- char *text; /* out: character string to receive
- explaination, passed out by reference
- or descriptor */
- {
- char statusText[CDF_ERRTEXT_LEN + 1];
- CDFstatus status;
-
- status = CDFlib (SELECT_, CDF_STATUS_, *Status,
- GET_, STATUS_TEXT_, statusText,
- NULL_);
- if (status > CDF_WARN)
- CtoFORTstring (statusText, text, CDF_STATUSTEXT_LEN)
- else
- CtoFORTstring ("Unknown CDFstatus", text, CDF_STATUSTEXT_LEN)
-
- return;
- }
- #endif
-
- /*****************************************************************************/
-
- #if defined(unix)
- #if defined(AIX)
- void cdf_error (Status, text, text_len)
- #else
- void cdf_error_ (Status, text, text_len)
- #endif
- CDFstatus *Status; /* in: CDF status code */
- char *text; /* out: character string to receive
- explaination */
- long text_len; /* invisible: length of "text" (generated by
- the FORTRAN compiler) */
- {
- char errorText[CDF_STATUSTEXT_LEN + 1];
- CDFstatus status;
-
- status = CDFlib (SELECT_, CDF_STATUS_, *Status,
- GET_, STATUS_TEXT_, errorText,
- NULL_);
- if (status > CDF_WARN)
- CtoFORTstring (errorText, text, text_len)
- else
- CtoFORTstring ("Unknown CDFstatus", text, text_len)
-
- return;
- }
- #endif
-